package cn.iocoder.yudao.module.of.dal.dataobject.meetingInfo;

import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 会议信息 DO
 *
 * @author 超级管理员
 */
@TableName(value = "of_meeting_info" , autoResultMap = true)
@KeySequence("of_meeting_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MeetingInfoDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 会议名称
     */
    private String name;
    /**
     * 会议编号
     */
    private  String code;
    /**
     * 会议类型 字典：of_meet_type
     */
    private Integer typeId;
    /**
     * 主持人ID
     */
    private Long chairpersonId;
    /**
     * 主持人名称
     */
    private String chairpersonName;
    /**
     * 参与者
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<String> participants;
    /**
     * 会议开始时间
     */
    private LocalDateTime startTime;
    /**
     * 会议截止时间
     */
    private LocalDateTime endTime;
    /**
     * 时长
     */
    private Integer timeLong;

    /**
     * 时长
     */
    private Integer timeLongType;
    /**
     * 会议地点
     */
    private String address;
    /**
     * 会议议程
     */
    private String agenda;
    /**
     * 会议附件
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long>  agendaAttachs;
    /**
     * 会议纪要附件
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long>  minutesAttachs;
    /**
     * 优先级
     */
    private Integer priorityId;
    /**
     * 优先级名称
     */
    private String priorityName;
    /**
     * 附件ID
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long>  attachs;
    /**
     * 提前提醒时间点
     */
    private Integer remindType;
    /**
     * 重复周期
     */
    private Integer repeatPeriod;
    /**
     * 主责部门
     */
    private Long mainRespDeptId;
    /**
     * 主任部门名称
     */
    private String mainRespDeptName;
    /**
     * 主责人员
     */
    private Long mainRespUserId;

    /**
     * 生成任务人
     */
    private Long taskGenUserId;

    /**
     *
     */
    private Integer status;

    /**
     * 租户ID
     */
    private Long tenantId;


}